---
title: "PipyJS"
---

PipyJS is JavaScript without control flow and OOP (Object-Oriented Programming).

In PipyJS, You can't write `if` or `for` statements or define user classes by inheritance. But you can write expressions for the engine to evaluate.

It is equivalent to "_purely functional_" JavaScript, where everything is an expression. Those constructs that you are already familiar with in _procedural programming_, like branches and loops, all have their counterparts in PipyJS as well, only in a different style ⏤ the "_functional_" style.

> For more information about _functional programming_, please refer to [Functional Programming](https://en.wikipedia.org/wiki/Functional_programming) on Wikipedia.

# For beginners and non-JS devs

Before starting using PipyJS, please familiarize yourself to the standard JavaScript (ECMAScript) first. A good source of learning can be found at [JavaScript](https://developer.mozilla.org/docs/Web/JavaScript) on MDN.

# For JavaScript developers

If you are already an experienced JavaScript developer, here're some useful topics discussing the differences between PipyJS and the standard JavaScript.

- About the the language itself and the syntax: [Language](/reference/pjs/1-language)
- About the builtin objects: [Builtin Objects](/reference/pjs/2-builtin-objects)
